home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Enigma Amiga Life 109
/
EnigmaAmiga109CD.iso
/
dalla rivista
/
amiga.free
/
sorgenti vari
/
wolfedit2 2.0.4 source.sit
/
WolfEdit2 2.0.4 Source
/
UEditObjects.p
< prev
next >
Wrap
Text File
|
1995-11-03
|
3KB
|
121 lines
unit UEditObjects;
interface
uses
UWolfDoc;
procedure EditObjects (mapList: TMapListDoc);
implementation
uses
UEditArt;
const
objectEditDlogID = 133;
paletteItem = 2;
imageItem = 3;
maxObjectArtIndex = lastEditableObjectCode - firstObjectCode;
type
TObjectImagePalette = object(TImagePalette)
procedure IObjectImagePalette;
procedure DrawImage (itemNo: integer; r: Rect);
override;
function ItemSelectable (item: integer): boolean;
override;
end;
TObjectEditDialog = object(TArtEditDialog)
procedure IObjectEditDialog (itsMapList: TMapListDoc);
procedure UninstallArt;
override;
procedure InstallArt;
override;
function ArtImageType: CustomImageType;
override;
function ArtImageCode: integer;
override;
procedure ChangeImage (gworld: GWorldPtr; isThumbnail: boolean);
override;
end;
procedure TObjectImagePalette.IObjectImagePalette;
begin
IImagePalette(16, maxObjectArtIndex + 1);
fDialog := nil;
end;
procedure TObjectImagePalette.DrawImage (itemNo: integer; r: Rect);
var
n: integer;
begin
fDialog.fMapList.PlotObject(firstObjectCode + itemNo, 0, r);
end;
function TObjectImagePalette.ItemSelectable (item: integer): boolean;
begin
ItemSelectable := fDialog.fMapList.ObjectAvailable(firstObjectCode + item);
end;
procedure TObjectEditDialog.IObjectEditDialog (itsMapList: TMapListDoc);
var
palette: TObjectImagePalette;
begin
new(palette);
palette.IObjectImagePalette;
IArtEditDialog(objectEditDlogID, palette, itsMapList, true);
palette.fDialog := self;
end;
procedure TObjectEditDialog.UninstallArt;
begin
if (fCurrentArt >= 0) & (fArtView.fChanged) then begin
fMapList.InstallObjectArt(firstObjectBrgrID + fCurrentArt, fArtView.ExtractObject);
fArtView.fChanged := false;
end;
end;
procedure TObjectEditDialog.InstallArt;
begin
if fCurrentArt >= 0 then
fArtView.InstallObject(fMapList.GetObjectArt(firstObjectBrgrID + fCurrentArt));
end;
function TObjectEditDialog.ArtImageType: CustomImageType;
begin
ArtImageType := objectImage;
end;
function TObjectEditDialog.ArtImageCode: integer;
begin
ArtImageCode := $17 + fCurrentArt;
end;
procedure TObjectEditDialog.ChangeImage (gworld: GWorldPtr; isThumbnail: boolean);
begin
ChangeObjectImage(ArtImageCode, gworld);
end;
procedure EditObjects (mapList: TMapListDoc);
var
dlog: TObjectEditDialog;
procedure CheckWindow (win: TWindow);
begin
if member(win, TObjectEditDialog) then begin
win.Select;
exit(EditObjects);
end;
end;
begin
mapList.EachWindowDo(CheckWindow);
new(dlog);
dlog.IObjectEditDialog(mapList);
dlog.Show;
end;
end.